#include <stdio.h>

int main(void)
{
	char str[] = "hello";

	// 常量指针,指针指向地址空间的数据只读,*p只读
	const char *p;
	// 也是常量指针,通常不这样定义
	char const *q;

	// 指针常量, 必须赋初始值,定义的时候如果不赋值,就不能再赋值了,r只读的,即指针本身是只读的
	char *const r = str;

	p = str;
	// *p = 'm';
	str[0]= 'm'; // 这是可以的

    printf("str: %s\n", str);

	q = str;
    printf("%c\n", *q);
    printf("q: %p\n", q);
	// *q = 'z';

	q = str + 2;
    printf("q: %p\n", q);
    printf("%c\n", *q);

	*r = 'z';
    printf("str: %s\nr: %p\n", str, r);
    printf("%c\n", *r);
	// r++;

	return 0;
}

